package com.ruicar.afs.cloud.common.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ruicar.afs.cloud.common.modules.contract.enums.CaseTypeEnum;
import com.ruicar.afs.cloud.common.modules.contract.enums.ProcessStatusEnum;
import com.ruicar.afs.cloud.common.modules.contract.enums.ReceiptSourceTypeEnum;
import com.ruicar.afs.cloud.common.modules.contract.enums.TreatmentMethodEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author infinity
 * @version 1.0
 * @date 2020/9/3 13:52
 */
@Data
public class RevokeHandleVo {
    @ApiModelProperty("申请编号")
    private String applyNo;
    @ApiModelProperty("客户名称")
    private String custName;
    @ApiModelProperty("收据id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long receiptId;
    @ApiModelProperty("案件编号")
    private String caseNo;
    @ApiModelProperty("收款来源类型 枚举值：对公结算，微信还款，银行代扣")
    private ReceiptSourceTypeEnum sourceType;
    @ApiModelProperty("案件类型")
    private CaseTypeEnum caseType;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("案件发起时间")
    private Date startTime;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("案件结束时间")
    private Date endTime;
    @ApiModelProperty("合同号")
    private String contractNo;
    @ApiModelProperty("处理方式")
    private TreatmentMethodEnum treatmentMethod;
    @ApiModelProperty("案件编号")
    private String handleCaseNo;
    @ApiModelProperty("处理状态")
    private ProcessStatusEnum processStatus ;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("收款成功时间")
    private Date succeedTime;
    @ApiModelProperty("收款金额 不可为负数")
    private BigDecimal arriveAmt;
    @ApiModelProperty("联系方式")
    private String phone;
}
